Skip to content

fix(semconv): attach spec-mandated explicit bucket boundaries to GenAI histogram helpers#5084

Open
alliasgher wants to merge 1 commit intoopen-telemetry:mainfrom
alliasgher:fix-gen-ai-histogram-buckets
Open

fix(semconv): attach spec-mandated explicit bucket boundaries to GenAI histogram helpers#5084
alliasgher wants to merge 1 commit intoopen-telemetry:mainfrom
alliasgher:fix-gen-ai-histogram-buckets

Conversation

@alliasgher
Copy link
Copy Markdown

Description

The four GenAI histogram helpers in opentelemetry-semantic-conventions called meter.create_histogram without passing explicit_bucket_boundaries_advisory. The SDK therefore fell back to _DEFAULT_EXPLICIT_BUCKET_HISTOGRAM_AGGREGATION_BOUNDARIES, which is tuned for request-duration metrics in the seconds range and produces unusable histograms for latency-per-token and TTFT metrics — the exact problem flagged in the semconv spec, which says these metrics SHOULD be specified with ExplicitBucketBoundaries.

Pass the semconv-prescribed boundaries for all four helpers:

  • gen_ai.client.operation.duration, gen_ai.server.request.duration, gen_ai.server.time_to_first_token share the latency boundary set [0.01 … 81.92] seconds.
  • gen_ai.server.time_per_output_token uses the per-token boundary set [0.01 … 2.5] seconds.

Fixes #4946

Checklist

  • pytest opentelemetry-semantic-conventions/tests/test_gen_ai_metrics.py
  • New test file asserts each factory passes the correct explicit_bucket_boundaries_advisory to Meter.create_histogram
  • CHANGELOG entry added

Signed-off-by: Ali alliasgher123@gmail.com

…I histogram helpers

The four GenAI histogram helpers in opentelemetry-semantic-conventions
called meter.create_histogram without passing
explicit_bucket_boundaries_advisory. The SDK therefore fell back to
_DEFAULT_EXPLICIT_BUCKET_HISTOGRAM_AGGREGATION_BOUNDARIES, which is
tuned for request-duration metrics in the seconds range and produces
unusable histograms for latency-per-token and TTFT metrics — the exact
problem flagged in the semconv spec which says these metrics SHOULD be
specified with ExplicitBucketBoundaries.

Pass the semconv-prescribed boundaries for all four helpers:

* gen_ai.client.operation.duration / gen_ai.server.request.duration /
  gen_ai.server.time_to_first_token share the latency boundary set
  [0.01 .. 81.92] seconds.
* gen_ai.server.time_per_output_token uses the per-token boundary set
  [0.01 .. 2.5] seconds.

Add tests asserting each factory passes the correct
explicit_bucket_boundaries_advisory to Meter.create_histogram.

Fixes open-telemetry#4946

Signed-off-by: Ali <alliasgher123@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Ready for review

Development

Successfully merging this pull request may close these issues.

GenAi metrics TTFT/TPOT histogram SHOULD be specified with ExplicitBucketBoundaries

2 participants